from multiprocessing import Process
import os,time

class Subprocess(Process):
    def __init__(self,name):
        super().__init__()
        self.name = name
    def run(self):
        print(f'子进程的名称{self.name},PID:{os.getpid()},PPID:{os.getppid()}')
def sub_process(name):
    print(f"子进程开始执行，PID是{os.getpid()}，父进程的PID是{os.getppid()}------{name}")
    time.sleep(1)

def sub_process2(name):
    print(f"子进程开始执行，PID是{os.getpid()}，父进程的PID是{os.getppid()}------{name}")
    time.sleep(1)

if __name__ == '__main__':
    print('主进程开始执行')
    lst = []
    for i in range(5):
        p1 = Process(target=sub_process,args=('lf',))   #不传参数，则默认运行process类的run方法
        p2 = Process(target=sub_process2, args=(i,))
        #p1 = Process()
        #p2 = Process()
        p1.start()       #启动进程
        p2.start()

        print(p1.name,'是否执行完毕：',p1.is_alive())
        print(p2.name, '是否执行完毕：', p2.is_alive())

        p1.join()       #阻塞主进程
        p2.join()

    for i in range(5):
        p1 = Subprocess(name=f'{i}')
        p1.start()      #使用start执行自己的run方法，如为定义执行父类的run方法
        #print(f'{i}')
        lst.append(p1)
    for item in lst:
        item.join()


    print('主进程执行完毕')
